#include <stdio.h>
#include "contact.h"
#include <stdlib.h>
#include <string.h>
#include <assert.h>

//创建通讯录
contact* create(contact* con)
{
	con =(contact*) malloc(sizeof(contact));
	if(con == NULL)
	{
		perror("malloc_con");
		return NULL;
	}
	//初始化
	memset(con, 0, sizeof(contact));
	con->sz = 0;
	return con;
}


//是否满了
int full(contact* con)
{
	if(con == NULL)
	{
		printf("con NULL");
		return -1;
	}
	return (con->sz == PEOLPE)? 1 : 0;
}


//查找
int seek(contact* con, char name[])
{
	int i;
	if(con == NULL)
	{
		printf("con_NULL");
		return -1;
	}
	//开始查找
	for(i = 0; i < con->sz; i++)
	{
		if(strcmp(con->data[i].name, name) == 0)
		{
			return i;
		}
	}
	return -1;

}


//增加
int add(contact* con)
{
	if(con == NULL)
	{
		printf("con NULL");
		return -1;
	}
	//判断是否满了
	if(full( con))
	{
		printf("通讯录满了\n");
		return -1;
	}

	printf("请输入联系人名字:\n");
	scanf("%s", con->data[con->sz].name);
	printf("请输入联系人地址:\n");
	scanf("%s",con->data[con->sz].addr);
	printf("请输入连续人电话:\n");
	scanf("%s", con->data[con->sz].tele);
	
	con->sz++;
	printf("添加成功\n");
	return 0;
}


//删除联系人
int dele(contact* con)
{
	int i;
	int ret;
	char name[NAME_MAX];
	if(con == NULL)
	{
		printf("con_NULL");
		return -1;
	}
	//查找
	printf("请输入你要删除人的名字:");
	scanf("%s", name);
	ret = seek(con, name);
	if(ret == -1)
	{
		printf("没有该联系人\n");
		return -1;
	}
	//删除
	for(i = ret; i < con->sz-1; i++)
	{
		con->data[i] = con->data[i+1];
	}
	//更新
	con->sz--;
	printf("删除成功\n");
	return 0;

}


//打印
int print(contact* con)
{
	int i;
	if(con == NULL)
	{
		printf("con NULL");
		return -1;
	}
	printf(" %-20s %-20s  %-20s\n","名字", "地址","电话");
	for(i= 0; i < con->sz; i++)
	{
		printf("%-20s %-20s %-20s\n",con->data[i].name,
								     con->data[i].addr,
									 con->data[i].tele);
	}
	return 0;
}


//修改
int alter(contact* con)
{
	char name[NAME_MAX];
	int len;
	if(con == NULL)
	{
		printf("con NULL");
		return -1;
	}
	printf("请输入要修改人的名字:");
	scanf("%s",name);
	//查找有没有
	len = seek(con,name);
	if(len == -1)
	{
		printf("找不到该联系人\n");
		return -1;
	}
	//更换
	printf("修改的名字:\n");
	scanf("%s", con->data[len].name);
	printf("修改的地址:\n");
	scanf("%s", con->data[len].addr);
	printf("修改的电话:\n");
	scanf("%s", con->data[len].tele);
	return 0;
}


//排序
int sort(contact* con)
{
	if(con == NULL)
	{
		printf("con_NULL");
		return -1;
	}
}





